﻿using System;
using System.Collections.Generic;
using System.Text;

namespace NutriStat
{
    /// <summary>
    /// This class is designed as a wrapper for all of the rules that must be followed during
    /// a table import. For example, the source table may use different measurements and this
    /// must be accounted for; we cannot simply assume that all input will always be in months/
    /// centimeters/millimeters/kilograms, etc. This rules set helps us determine what exactly
    /// will be done.
    /// </summary>
    public class ImportConfiguration
    {
        #region Data
        #region Protected Data
        #endregion Protected Data

        #region Private Data
        private double ageConversion;
        private double heightConversion;
        private double weightConversion;
        private double headConversion;
        private double armConversion;
        private double subscapularConversion;
        private double tricepsConversion;
        private string male;
        private string female;
        #endregion Private Data
        
        #region Internal Data
        #endregion Internal Data
        #endregion Data

        #region Constructors
        /// <summary>
        /// Constructor
        /// </summary>
        public ImportConfiguration()
        {
            AgeConversion = 1.0;
            HeightConversion = 1.0;
            WeightConversion = 1.0;
            HeadConversion = 1.0;
            ArmConversion = 1.0;
            SubscapularConversion = 1.0;
            TricepsConversion = 1.0;
            Male = "M";
            Female = "F";
        }
        #endregion Constructors

        #region Properties
        #region Public Properties
        /// <summary>
        /// Gets/sets the age conversion rate.
        /// </summary>
        public double AgeConversion
        {
            get
            {
                return ageConversion;
            }
            set
            {
                ageConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the height conversion rate.
        /// </summary>
        public double HeightConversion
        {
            get
            {
                return heightConversion;
            }
            set
            {
                heightConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the weight conversion rate.
        /// </summary>
        public double WeightConversion
        {
            get
            {
                return weightConversion;
            }
            set
            {
                weightConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the head circumference conversion rate.
        /// </summary>
        public double HeadConversion
        {
            get
            {
                return headConversion;
            }
            set
            {
                headConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the arm circumference conversion rate.
        /// </summary>
        public double ArmConversion
        {
            get
            {
                return armConversion;
            }
            set
            {
                armConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the subscapular skin fold conversion rate.
        /// </summary>
        public double SubscapularConversion
        {
            get
            {
                return subscapularConversion;
            }
            set
            {
                subscapularConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the triceps skin fold conversion rate.
        /// </summary>
        public double TricepsConversion
        {
            get
            {
                return tricepsConversion;
            }
            set
            {
                tricepsConversion = value;
            }
        }

        /// <summary>
        /// Gets/sets the coding for male patients.
        /// </summary>
        public string Male
        {
            get
            {
                return male;
            }
            set
            {
                male = value;
            }
        }

        /// <summary>
        /// Gets/sets the coding for female patients.
        /// </summary>
        public string Female
        {
            get
            {
                return female;
            }
            set
            {
                female = value;
            }
        }
        #endregion Public Properties

        #region Protected Properties
        #endregion Protected Properties

        #region Private Properties
        #endregion Private Properties
        #endregion Properties

    }
}
